package com.yoake.cine.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.yoake.common.annotation.Excel;
import com.yoake.common.core.domain.BaseEntity;

/**
 * 场次信息管理对象 movie_session
 * 
 * @author yoake
 * @date 2025-03-21
 */
public class MovieSession extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 场次编号 */
    private String sessionId;

    /** 影厅编号 */
    @Excel(name = "影厅编号")
    private String hallId;

    /** 语言版本 */
    @Excel(name = "语言版本")
    private String languageVersion;

    /** 电影编号 */
    @Excel(name = "电影编号")
    private String movieId;

    /** 播放时间 */
    @Excel(name = "播放时间")
    private String playTime;

    /** 散场时间 */
    @Excel(name = "散场时间")
    private String endTime;

    /** 检测到的截止时间，没过这个时间不能删电影、影厅信息 */
    @Excel(name = "检测到的截止时间，没过这个时间不能删电影、影厅信息")
    private String deadline;

    /** 场次日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "场次日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date sessionDate;

    /** 票价 */
    @Excel(name = "票价")
    private BigDecimal sessionPrice;

    /** 影厅提示(如是否需要戴口罩，有什么福利，显示在选座购票位置的影厅后边，格式类似：6号Barco厅-（戴口罩勿饮食）凭票领券免费停车3小时) */
    @Excel(name = "影厅提示(如是否需要戴口罩，有什么福利，显示在选座购票位置的影厅后边，格式类似：6号Barco厅-", readConverterExp = "戴=口罩勿饮食")
    private String sessionTips;

    /** 座位信息，采用{key: [], key: []}存储每一个座位的状态，其中key表示排，数组(下标+1)表示几号座，存储的值为0表示可选，1表示空(无座位)，值为2表示已选择，值为3表示已售出， */
    @Excel(name = "座位信息，采用{key: [], key: []}存储每一个座位的状态，其中key表示排，数组(下标+1)表示几号座，存储的值为0表示可选，1表示空(无座位)，值为2表示已选择，值为3表示已售出，")
    private String sessionSeats;

    /** 总座位数 */
    @Excel(name = "总座位数")
    private String seatNums;

    /** 售出座位数 */
    @Excel(name = "售出座位数")
    private Long sallNums;

    /** 删除标记，0未删除，1删除，默认0 */
    @Excel(name = "删除标记，0未删除，1删除，默认0")
    private Long delState;

    public void setSessionId(String sessionId) 
    {
        this.sessionId = sessionId;
    }

    public String getSessionId() 
    {
        return sessionId;
    }

    public void setHallId(String hallId) 
    {
        this.hallId = hallId;
    }

    public String getHallId() 
    {
        return hallId;
    }

    public void setLanguageVersion(String languageVersion) 
    {
        this.languageVersion = languageVersion;
    }

    public String getLanguageVersion() 
    {
        return languageVersion;
    }

    public void setMovieId(String movieId) 
    {
        this.movieId = movieId;
    }

    public String getMovieId() 
    {
        return movieId;
    }

    public void setPlayTime(String playTime) 
    {
        this.playTime = playTime;
    }

    public String getPlayTime() 
    {
        return playTime;
    }

    public void setEndTime(String endTime) 
    {
        this.endTime = endTime;
    }

    public String getEndTime() 
    {
        return endTime;
    }

    public void setDeadline(String deadline) 
    {
        this.deadline = deadline;
    }

    public String getDeadline() 
    {
        return deadline;
    }

    public void setSessionDate(Date sessionDate) 
    {
        this.sessionDate = sessionDate;
    }

    public Date getSessionDate() 
    {
        return sessionDate;
    }

    public void setSessionPrice(BigDecimal sessionPrice) 
    {
        this.sessionPrice = sessionPrice;
    }

    public BigDecimal getSessionPrice() 
    {
        return sessionPrice;
    }

    public void setSessionTips(String sessionTips) 
    {
        this.sessionTips = sessionTips;
    }

    public String getSessionTips() 
    {
        return sessionTips;
    }

    public void setSessionSeats(String sessionSeats) 
    {
        this.sessionSeats = sessionSeats;
    }

    public String getSessionSeats() 
    {
        return sessionSeats;
    }

    public void setSeatNums(String seatNums) 
    {
        this.seatNums = seatNums;
    }

    public String getSeatNums() 
    {
        return seatNums;
    }

    public void setSallNums(Long sallNums) 
    {
        this.sallNums = sallNums;
    }

    public Long getSallNums() 
    {
        return sallNums;
    }

    public void setDelState(Long delState) 
    {
        this.delState = delState;
    }

    public Long getDelState() 
    {
        return delState;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("sessionId", getSessionId())
            .append("hallId", getHallId())
            .append("languageVersion", getLanguageVersion())
            .append("movieId", getMovieId())
            .append("playTime", getPlayTime())
            .append("endTime", getEndTime())
            .append("deadline", getDeadline())
            .append("sessionDate", getSessionDate())
            .append("sessionPrice", getSessionPrice())
            .append("sessionTips", getSessionTips())
            .append("sessionSeats", getSessionSeats())
            .append("seatNums", getSeatNums())
            .append("sallNums", getSallNums())
            .append("delState", getDelState())
            .toString();
    }
}
